package com.zlm.user.emp.service;

import com.zlm.common.base.BaseService;
import com.zlm.common.dto.userEmp.EmpPunchDto;
import com.zlm.common.dto.userEmp.EmpPunchParamsDto;
import com.zlm.common.dto.userEmp.EmpPunchResponseDto;
import com.zlm.common.entity.EmpPunchDO;

import java.util.List;
import java.util.Map;

/**
 * 员工考勤服务
 * @Author: duyufu
 * @Date: 2019/5/28 11:50
 */
public interface EmpPunchService extends BaseService<EmpPunchDO> {

    /**
     * 查询指定日期考勤
     * @param empId
     * @param punchDate
     * @param workTimeId
     * @return
     */
    EmpPunchResponseDto queryEmpPunch(Integer empId, String punchDate, Integer workTimeId);

    /**
     * 考勤统计
     * @param empId
     * @param date
     * @return
     */
    EmpPunchDto countEmpPunch(Integer empId, String date) throws Exception;

    /**
     * 考勤详情
     * @param empId
     * @param date
     * @return
     */
    List<Map<String, Object>> punchDetail(Integer empId, String date) throws Exception;

    /**
     * 员工打卡
     * @param empPunchParamsDto
     */
    void empPunch(EmpPunchParamsDto empPunchParamsDto) throws Exception;

    /**
     * 获取指定日期考勤部分信息
     * @param empId
     * @param punchDate
     * @return
     */
    List<Map<String,Object>> queryEmpPunchDay(String empId, String punchDate);
}
